package es.ucm.fdi.xtremeaudio.vista;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;

import es.ucm.fdi.xtremeaudio.modelo.beans.Playlist;

/**
 * <ul>
 * <li><b>Proyecto:</b> XtremeAudio</li>
 * <li><b>Grupo:</b> 7 <i>(4&deg;B)</i></li>
 * <li><b>Asignatura:</b> Ingenier&iacute;a del Software</li>
 * <li><b>Curso:</b> 2010/2011</li>
 * <li><b>Centro:</b> Universidad Complutense de Madrid</li>
 * </ul>
 * 
 * El listener <b>AccionMenuContextual</b> implementa la interfaz
 * {@link ActionListener} y se encarga de recoger los eventos que se produzcan
 * en el men&uacute; contextual generado al hacer doble clic sobre una
 * selecci&oacute;n de archivos de la biblioteca o b&uacute;squeda. Su funci&oacute;n
 * es la de agregar una serie de canciones seleccionadas a la lista que determine 
 * el identificador asociado tanto a &eacute;sta como al
 * &iacute;tem del men&uacute; contextual.
 * 
 * @author &Aacute;lvaro G&oacute;mez Porris
 * @author Elena Hern&aacute;ndez Delgado
 * @author Mar&iacute;a Trinidad Mart&iacute;n Campos
 * @author Mois&eacute;s Mart&iacute;nez Montes
 * @author Mat&iacute;as Salinero Delgado
 * 
 * @version %I%, %G%
 * 
 * @since 1.0
 */
public class AccionMenuContextual implements ActionListener {
	private int[] filas;
	private int id;
	private ArrayList<Playlist> listas;

	/**
	 * @param id
	 * @param listas
	 * @param filas
	 */
	public AccionMenuContextual(int id, ArrayList<Playlist> listas, int[] filas) {
		this.id = id;
		this.listas = listas;
		this.filas = filas;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
	 */
	public void actionPerformed(ActionEvent e) {
		Iterator<Playlist> it = listas.iterator();
		while (it.hasNext()) {
			Playlist p = it.next();
			if (id == p.getId()) {
				for (int i = 0; i < filas.length; i++) {
					if (!p.existeCancion(filas[i])) {
						p.getCanciones().add(filas[i]);
					}
				}
			}
		}
	}

}